Method of financing unfunded liabilities

ABSTRACT

A method is disclosed of financing the liabilities of sovereign governmental entities, their political subunits, and like entities (e.g., school boards, etc.), and private business entities through the use of insurance products. In one embodiment, the method may include: receiving a population data set, generating a plurality of mortality data sets, generating a financial target data set, transmitting the financial target data set to a plurality of life insurance vendors, receiving from each of at least two life insurance vendors a rate table, generating a proportional rating for each insurance vendor, generating a final rate table having a per member life insurance premium rate for each mortality data set.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional Application No. 61/178,386, filed May 14, 2009, the disclosure of which is incorporated by reference herein in its entirety.

FIELD OF THE INVENTION

A method is disclosed of financing the liabilities of sovereign governmental entities, their political subunits, and like entities (e.g., school boards, etc.), and private business entities through the use of insurance products.

BACKGROUND OF THE INVENTION

Tough economic conditions affect many, if not all, of the states and their political subunits. Income constraints and expense pressures make it difficult to balance budgets on an annual basis. Governmental units must also deal with issues concerning unfunded liabilities following the implementation of the Governmental Accounting Standards Board (GASB) Statement 45 concerning Other Post Employee Benefits (OPEB). Under Statement 45, unfunded liabilities must be accounted for in financial statements. This burden of having to account for unfunded liabilities places more pressure on already strained budgeting systems.

Two issues are worth particular mention when discussing unfunded liabilities. One is the amount of the unfunded liability. By way of example, the 2006 Michigan Comprehensive Annual Financial Report (CAFR) for public school employees estimated a FY2005 pension plan deficit of just under 10 billion dollars. This was a deficit increase of $2.45 billion dollars over the prior year. Other estimates showed this gap widening. If other state agencies are also accounted for, the deficit grows to over $12 billion dollars, not including the potential accounting problems raised by Statement 45.

The other issue worth particular mention is the type and availability of the contributions that are made to pay for liabilities. This issue may be demonstrated by looking at the state of the Michigan Public School Employee Retirement System (MPSERS). The Annual Required Contribution (ARC) for the MPSERS for 2006 was over 1.1 billion dollars. The actual contribution was slightly under $1 billion dollars. This under funding of payments compounded the overall negative economic outlook, and becomes more serious still when OPEB and Statement 45 are considered.

The financial ramifications of unfunded liabilities on states and their subunits is significant and long term. The credit rating agency Standard and Poor (S&P) may also be closely watching this issue, especially as it relates to OPEB and Statement 45. Pensions are typically funded at the 80th percentile. However, OPEB is funded at the 25th percentile. Therefore, if the new accounting rules in Statement 45 are ignored, the result could be that a state or subunit would see a lowering of its credit rating. A lowered credit rating could result in higher borrowing costs and unfavorable changes in how interest accumulation is calculated under the ARC.

Factors that governmental units need to consider to address the issues mentioned above include adjustments to benefits, addressing funding issues, and the creation of unique solutions to enhance cash flow. Each of these factors may be addressed on several levels, such as reducing post employment benefits (OPEB), offering new employees/new retirees adjusted benefits, and placing a cap on employer-provided benefits. The governmental units may also utilize early buyout programs to change the cash flow cycle. Finally, other methods may be utilized to create additional solutions to the problem of unfunded liabilities.

SUMMARY OF THE INVENTION

In the disclosed embodiment of the method, insurance products may be used to transfer the funding risks of unfunded liabilities to another organization (i.e., an insurance vendor). The method provides an efficient solution that may increase the return on investment (ROI) with minimal risk. As a result, a governmental (or private) unit may be free to support its liabilities without new investment or spending. Cash flow may also be freed up so that it may be utilized in other areas of a governmental unit's budget. For example, where a governmental unit anticipates making total yearly payments of X to fund a liability (e.g., a pension), the disclosed method may permit the governmental unit to achieve that same funding level through the coordinated purchase of life insurance having returns equaling the funding target but yearly premium payments that are less than X.

In one embodiment, the method may be described as including the steps of:

A. Accumulate census/populations data, including demographic data for each member of the population;

B. Complete preliminary analysis by, for example, determining mortality data and estimated insurance rates and then using that information and financial projection data to determine a projected funding need;

D. Complete extensive analysis including life insurance rates information, as modified by a proportional rating for each insurance vendor;

E. Implement solution;

F. Monitor solution as needed.

However, as will be described below, these various general steps may be further distilled and recharacterized to yield the claimed method.

In operation, the disclosed method may provide an option for governmental units to control their liability as well as increase cash flows. It will be an efficient solution to address a growing problem in pension and OPEB promised benefits.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the attached drawings, wherein like reference numbers refer to like parts throughout, and wherein:

FIG. 1 is a diagrammatic view of an embodiment of the method;

FIG. 2 is a diagrammatic view showing the generation of a mortality data set;

FIG. 3 is a diagrammatic view showing the generation of an array or table including premium information received from the plurality of insurance vendors;

FIG. 4 is a diagrammatic view showing the generation of the final rate array or table;

FIG. 5 is a diagrammatic view showing an embodiment of the “adding back” monitoring step of the method.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to FIG. 1-5, one embodiment of a method 10 for financing the unfunded liability of a governmental unit (quasi-government or private entity) may include: receiving 12 a population data set 100, generating 14 a plurality of mortality data sets 102, generating 16 a financial target data set 104, transmitting 18 the financial target data 104 set to a plurality of life insurance vendors 106, receiving 20 from each of at least two life insurance vendors 106 a rate table 108, generating 22 a proportional rating 110 for each insurance vendor 106, generating 24 a final rate table 112 having a per member life insurance premium rate for each mortality data set 102. The method 10 may be carried out automatically through the use of a networked computer server (not shown) having a processor module, a computer readable electronic storage module, an input device and a display, or a similar apparatus. The networked computer server may also be specially programmed to include particular calculations, discussed infra, for mortality, death benefit modeling, insurance premium modeling, population modeling, and financial modeling.

Referring now to FIGS. 1 and 2, as part of the disclosed method 10 a population data set 100 is received 10 that may include demographic data 114 for each member of a predetermined population. The predetermined population data set may include, related to and/or identify employees or individuals associated with the unfunded liability to be financed. For example, where the unfunded liability is a teacher's pension fund, the defined or predetermined population of the population data set may include the number of teachers/retirees that pay into or collect from the fund. Likewise, where the unfunded liability is a state pension fund, the population data set may include all state employees that pay into that fund. However, it will be appreciated that the population data set include individuals who are not associated with the unfunded liability (e.g., spouses or dependents of employees), or a combination of individuals with some being associated with the unfunded liability and others who are not associated with the unfunded liability.

The data set 100 may be transmitted into or otherwise input into the computer readable electronic storage module of the computer server. The data set 100 may also be transmitted to the server directly from by the entity responsible for an unfunded liability.

Still referring to FIGS. 1 and 2, the population data set 100 may also include demographic data 114 about each member of the predetermined population (e.g., teachers, state workers, etc.). This demographic data 114 many include gender data and smoking status data (i.e., (1) male smokers; (2) male nonsmokers (3) female smokers; and (4) female nonsmokers). However, other data may also be used including age, population group member health status; employment compensation status (salary/nonsalary); employment responsibility level status (title/management); type or area of employment (department); physical location (geography).

Still referring to FIGS. 1 and 2, another step of the disclosed method 10 may include generating 12 a plurality of mortality data sets 102. Each mortality data set 102 may be defined to include a group of members of the population data set 100 that have a common set of demographic data 114 (e.g., same age, gender and smoking status). The mortality data sets 102 may also include an estimated mortality rate 116 for the members of the population included in each data set 104.

Still referring to FIGS. 1 and 2, as mentioned supra, each mortality data set 102 may be defined in part to include a group of members taken from the population data set 100 that share a set of demographic data 114. For example, in one embodiment of the method 10, the demographic data 114 includes groups of (1) male smokers; (2) male nonsmokers (3) female smokers; and (4) female nonsmokers). These groups may then be further defined by age. For example, in the disclosed embodiment of the method ages between 18 and 120 may be used to define a total of 412 mortality data sets 102, with each set corresponding group population members having a common age, gender and smoking status. However, as also mentioned supra, it will be appreciated that other demographic data (or combinations thereof) may be used in defining the mortality data sets.

Still referring to FIGS. 1 and 2, to obtain a mortality rate 116 for each mortality data set 102, the population associated with each mortality data set 102 is filtered through different known mortality tables 118 (e.g., 1980 Commissioners Standard Ordinary (CSO), 1994 Group Annuity Reserving (GAR), RP-2000 and 2001 CSO) to obtain a stable population estimate. For example, if a mortality data set 102 is defined to include 1,000 males, age 25, non-smoker, that data set 102 may be filtered as follows: 10% CSO, 40% GAR, 25% RP-2000 and 25% 2001 CSO. More specifically, in one non-limiting example the manner of filtering the members through the several mortality tables 118 to obtain a mortality rate 116 for that mortality data set 104 may be calculated using the follow (population) model:

    CalcMort [sns_, sex_, age_, num_] := If[ sex == 1,   If[ sns ==    0,    (mm80per*(num*((mn80[[age − 17]]/1000)*  mn80lng))) + (mm01per*(num*((mn01[[age − 17]]/1000)*  mn01lng))) + (mm94per*(num*((mn94[[age − 17]]/1000)*  mn94lng))) + (mm2kper*(num*((mn2k[[age − 17]]/1000)*mn2klng))),    (mm80per*(num*((ms80[[age − 17]]/1000)*  ms80lng))) + (mm01per*(num*((ms01[[age − 17]]/1000)*  ms01lng))) + (mm94per*(num*((ms94[[age − 17]]/1000)*  ms94lng))) + (mm2kper*(num*((ms2k[[age − 17]]/1000)*ms2klng)))   ],   If[ sns ==    0,    (fm80per*(num*((fn80[[age − 17]]/1000)*  fn80lng))) + (fm01per*(num*((fn01[[age − 17]]/1000)*  fn01lng))) + (fm94per*(num*((fn94[[age − 17]]/1000)*  fn94lng))) + (fm2kper*(num*((fn2k[[age − 17]]/1000)*fn2klng))),    (fm80per*(num*((fs80[[age − 17]]/1000)*  fs80lng))) + (fm01per*(num*((fs01[[age − 17]]/1000)*  fs01lng))) + (fm94per*(num*((fs94[[age − 17]]/1000)*  fs94lng))) + (fm2kper*(num*((fs2k[[age − 17]]/1000)*fs2klng)))   ] ];

In which

sns=smoking or non smoking value

sex=male or female

age=age

num=number of people in that age/sex/smoking group

Male Non Smoker

-   -   a. mm80per=percentage of people to use the CSO 80 tables     -   b. mn80=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   c. mn80lng=the +/− of to applied to mortality for the CSO 80         table     -   d. mm01per=percentage of people to use the CSO 2001 tables     -   e. mn01=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   f. mn01lng=the +/− of to applied to mortality for the CSO 2001         table     -   g. mm94per=percentage of people to use the CSO 94 tables     -   h. mn94=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   i. mn94lng=the +/− of to applied to mortality for the CSO 94         table     -   j. mm2kper=percentage of people to use the CSO RP2000 tables     -   k. nm2k=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   l. mn2klng=the +/− of to applied to mortality for the CSO RP2000         table

Male Smoker

-   -   a. mm80per=percentage of people to use the CSO 80 tables     -   b. ms80=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   c. ms80lng=the +/− of to applied to mortality for the CSO 80         table     -   d. mm01per=percentage of people to use the CSO 2001 tables     -   e. ms01=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   f. ms01lng=the +/− of to applied to mortality for the CSO 2001         table     -   g. mm94per=percentage of people to use the CSO 94 tables     -   h. ms94=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   i. ms94lng=the +/− of to applied to mortality for the CSO 94         table     -   j. mm2kper=percentage of people to use the CSO RP2000 tables     -   k. ms2k=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   l. ms2klng=the +/− of to applied to mortality for the CSO RP2000         table

Female Non Smoker

-   -   a. fm80per=percentage of people to use the CSO 80 tables     -   b. fn80=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   c. fn80lng=the +/− of to applied to mortality for the CSO 80         table     -   d. fm01per=percentage of people to use the CSO 2001 tables     -   e. fn01=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   f. fn01lng=the +/− of to applied to mortality for the CSO 2001         table     -   g. fm94per=percentage of people to use the CSO 94 tables     -   h. fn94=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   i. fn94lng=the +/− of to applied to mortality for the CSO 94         table     -   j. fm2kper=percentage of people to use the CSO RP2000 tables     -   k. fn2k=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   l. fn2klng=the +/− of to applied to mortality for the CSO RP2000         table

Female Smoker

-   -   a. fm80per=percentage of people to use the CSO 80 tables     -   b. fs80=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   c. fs80lng=the +/− of to applied to mortality for the CSO 80         table     -   d. fm01per=percentage of people to use the CSO 2001 tables     -   e. fs01=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   f. fs01lng=the +/− of to applied to mortality for the CSO 2001         table     -   g. fm94per=percentage of people to use the CSO 94 tables     -   h. fs94=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   i. fs94lng=the +/− of to applied to mortality for the CSO 94         table     -   j. fm2kper=percentage of people to use the CSO RP2000 tables     -   k. fs2k=mortality for the specific age/sex/smoking         (e.g.—mortality for 45 year old female smoker)     -   l. fs2ldng=the +/− of to applied to mortality for the CSO RP2000         table

It will be appreciated that each mortality data set 102 may comprise a mortality rate 116 for the members of the population associated with the data set 102 that is based upon a blend of the mortality models obtained from different mortality tables 118. If this blending of data results in a stable population (i.e., a population having an expected or reasonable death rate) it is accepted. If the mortality data set 102 does not result in a stable population, then the mortality data set 102 may be recalculated using different percentages of the population group as determined by the user until a stable model is achieved.

Referring now to FIG. 1, the disclosed method 10 may include as a further step the generation 14 of a financial target data set 104. This financial target data set 104 may include the population data set 100. It may also indicate, for each mortality data set 102, what the per member life insurance benefit will need to be, on an average basis per member, in order to meet a revenue target for the unfunded mandate. More specifically, prior to the generation 14 of the financial target data set 104, financial projection data may be input into the computer readable electronic storage module of the computer server. This projection data may be transmitted to the server by, for example, the entity responsible for the unfunded liability. It may include a funding target for the unfunded liability (i.e., the amount necessary to meet an estimated shortfall or need), an expected rate of return for each life insurance policy, and described any bonus insurance coverage (see infra) that may be offered to the population members beyond that required to fund the liability (i.e., additional coverage that is paid for by a sponsor (e.g. as an employment incentive) but the benefit is provided to member/employee's family).

Still referring now to FIG. 1, as mentioned supra, using the financial projection data, the financial target data 104 set may indicate the amount of return required to be earned over time on an insurance policy taken out on each member of each mortality data set to meet a funding target of the unfunded liability. In one non-limiting example, this per member life insurance benefit may be calculated as follows:

  If[useroi == True, (If[yrs2 == 20, (sol = Solve[uaal == Yr20ROP + (  yr1roi = (sdx*1000*yr1deaths)*(1 + d01);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi)*(1 + d02);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi)*(1 + d03);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi)*(1 + d04);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi)*(1 + d05);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi)*(1 + d06);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi)* (1 + d07);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi)*(1 + d08);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi)*(1 + d09);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi)*(1 + d10);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi)*(1 + d11);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi)*(1 + d12);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi)*(1 + d13);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi)*(1 + d14);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi)*(1 + d15);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi)*(1 + d16);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi)*(1 + d17);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi)*(1 + d18);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi)*(1 + d19);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi)*(1 + d20)), sdx])]; If[yrs2 ==  25, (sol =   Solve[uaal == Yr25ROP + (yr1roi = (sdx*1000*yr1deaths)*(1 + d01);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi)*(1 + d02);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi)*(1 + d03);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi)*(1 + d04);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi)*(1 + d05);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi)*(1 + d06);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi)*(1 + d07);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi)*(1 + d08);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi)*(1 + d09);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi)*(1 + d10);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi)*(1 + d11);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi)*(1 + d12);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi)*(1 + d13);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi)*(1 + d14);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi)*(1 + d15);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi)*(1 + d16);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi)*(1 + d17);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi)*(1 + d18);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi)*(1 + d19);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi)*(1 + d20);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi)*(1 + d21);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi)*(1 + d22);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi)*(1 + d23);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi)*(1 + d24); yr25roi = ((sdx*1000*yr25deaths) + yr24roi)*(1 + d25)), sdx])]; If[yrs2 ==  30, (sol =   Solve[uaal == Yr30ROP + (yr1roi = (sdx*1000*yr1deaths)*(1 + d01);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi)*(1 + d02);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi)*(1 + d03);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi)*(1 + d04);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi)*(1 + d05);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi)*(1 + d06);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi)*(1 + d07);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi)*(1 + d08);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi)*(1 + d09);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi)*(1 + d10);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi)*(1 + d11);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi)*(1 + d12);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi)*(1 + d13);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi)*(1 + d14);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi)*(1 + d15);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi)*(1 + d16);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi)*(1 + d17);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi)*(1 + d18);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi)*(1 + d19);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi)*(1 + d20);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi)*(1 + d21);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi)*(1 + d22);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi)*(1 + d23);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi)*(1 + d24);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi)*(1 + d25);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi)*(1 + d26);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi)*(1 + d27);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi)*(1 + d28);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi)*(1 + d29);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi)*(1 + d30)), sdx])]; If[yrs2 ==  40, (sol =   Solve[uaal == Yr40ROP + (yr1roi = (sdx*1000*yr1deaths)*(1 + d01);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi)*(1 + d02);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi)*(1 + d03);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi)*(1 + d04);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi)*(1 + d05);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi)*(1 + d06);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi)*(1 + d07);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi)*(1 + d08);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi)*(1 + d09);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi)*(1 + d10);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi)*(1 + d11);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi)*(1 + d12);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi)*(1 + d13);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi)*(1 + d14);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi)*(1 + d15);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi)*(1 + d16);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi)*(1 + d17);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi)*(1 + d18);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi)*(1 + d19);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi)*(1 + d20);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi)*(1 + d21);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi)*(1 + d22);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi)*(1 + d23);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi)*(1 + d24);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi)*(1 + d25);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi)*(1 + d26);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi)*(1 + d27);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi)*(1 + d28);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi)*(1 + d29);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi)*(1 + d30);  yr31roi = ((sdx*1000*yr31deaths) + yr30roi)*(1 + d31);  yr32roi = ((sdx*1000*yr32deaths) + yr31roi)*(1 + d32);  yr33roi = ((sdx*1000*yr33deaths) + yr32roi)*(1 + d33);  yr34roi = ((sdx*1000*yr34deaths) + yr33roi)*(1 + d34);  yr35roi = ((sdx*1000*yr35deaths) + yr34roi)*(1 + d35);  yr36roi = ((sdx*1000*yr36deaths) + yr35roi)* (1 + d36);  yr37roi = ((sdx*1000*yr37deaths) + yr36roi)*(1 + d37);  yr38roi = ((sdx*1000*yr38deaths) + yr37roi)*(1 + d38);  yr39roi = ((sdx*1000*yr39deaths) + yr38roi)*(1 + d39);  yr40roi = ((sdx*1000*yr40deaths) + yr39roi)*(1 + d40)), sdx])]; If[yrs2 ==  50, (sol =   Solve[uaal = Yr50ROP + (yr1roi = (sdx*1000*yr1deaths)*(1 + d01);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi)*(1 + d02);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi)*(1 + d03);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi)*(1 + d04);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi)*(1 + d05);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi)*(1 + d06);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi)*(1 + d07);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi)*(1 + d08);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi)*(1 + d09);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi)*(1 + d10);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi)*(1 + d11);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi)*(1 + d12);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi)*(1 + d13);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi)*(1 + d14);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi)*(1 + d15);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi)*(1 + d16);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi)*(1 + d17);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi)*(1 + d18);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi)*(1 + d19);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi)*(1 + d20);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi)*(1 + d21);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi)*(1 + d22);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi)*(1 + d23);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi)*(1 + d24);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi)*(1 + d25);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi)*(1 + d26);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi)*(1 + d27);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi)*(1 + d28);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi)*(1 + d29);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi)*(1 + d30);  yr31roi = ((sdx*1000*yr31deaths) + yr30roi)*(1 + d31);  yr32roi = ((sdx*1000*yr32deaths) + yr31roi)*(1 + d32);  yr33roi = ((sdx*1000*yr33deaths) + yr32roi)*(1 + d33);  yr34roi = ((sdx*1000*yr34deaths) + yr33roi)*(1 + d34);  yr35roi = ((sdx*1000*yr35deaths) + yr34roi)*(1 + d35);  yr36roi = ((sdx*1000*yr36deaths) + yr35roi)*(1 + d36);  yr37roi = ((sdx*1000*yr37deaths) + yr36roi)*(1 + d37);  yr38roi = ((sdx*1000*yr38deaths) + yr37roi)*(1 + d38);  yr39roi = ((sdx*1000*yr39deaths) + yr38roi)*(1 + d39);  yr40roi = ((sdx*1000*yr40deaths) + yr39roi)*(1 + d40);  yr41roi = ((sdx*1000*yr41deaths) + yr40roi)*(1 + d41);  yr42roi = ((sdx*1000*yr42deaths) + yr41roi)*(1 + d42);  yr43roi = ((sdx*1000*yr43deaths) + yr42roi)*(1 + d43);  yr44roi = ((sdx*1000*yr44deaths) + yr43roi)*(1 + d44);  yr45roi = ((sdx*1000*yr45deaths) + yr44roi)*(1 + d45);  yr46roi = ((sdx*1000*yr46deaths) + yr45roi)*(1 + d46);  yr47roi = ((sdx*1000*yr47deaths) + yr46roi)*(1 + d47);  yr48roi = ((sdx*1000*yr48deaths) + yr47roi)*(1 + d48);  yr49roi = ((sdx*1000*yr49deaths) + yr48roi)*(1 + d49);  yr50roi = ((sdx*1000*yr50deaths) + yr49roi)*(1 + d50)), sdx])];), (If[yrs2 ==  20, (sol = Solve[uaal == Yr20ROP + (yr1roi = (sdx*1000*yr1deaths);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi)), sdx])]; If[yrs2 ==  25, (sol = Solve[uaal = Yr25ROP + (yr1roi = (sdx*1000*yr1deaths);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi)), sdx])]; If[yrs2 ==  30, (sol = Solve[uaal == Yr30ROP + (yr1roi = (sdx*1000*yr1deaths);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi)), sdx])]; If[yrs2 ==  40, (sol = Solve[uaal == Yr40ROP + (yr1roi = (sdx*1000*yr1deaths);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi);  yr31roi = ((sdx*1000*yr31deaths) + yr30roi);  yr32roi = ((sdx*1000*yr32deaths) + yr31roi);  yr33roi = ((sdx*1000*yr33deaths) + yr32roi);  yr34roi = ((sdx*1000*yr34deaths) + yr33roi);  yr35roi = ((sdx*1000*yr35deaths) + yr34roi);  yr36roi = ((sdx*1000*yr36deaths) + yr35roi);  yr37roi = ((sdx*1000*yr37deaths) + yr36roi);  yr38roi = ((sdx*1000*yr38deaths) + yr37roi);  yr39roi = ((sdx*1000*yr39deaths) + yr38roi);  yr40roi = ((sdx*1000*yr40deaths) + yr39roi);), sdx])]; If[yrs2 ==  50, (sol = Solve[uaal == Yr50ROP + (yr1roi = (sdx*1000*yr1deaths);  yr2roi = ((sdx*1000*yr2deaths) + yr1roi);  yr3roi = ((sdx*1000*yr3deaths) + yr2roi);  yr4roi = ((sdx*1000*yr4deaths) + yr3roi);  yr5roi = ((sdx*1000*yr5deaths) + yr4roi);  yr6roi = ((sdx*1000*yr6deaths) + yr5roi);  yr7roi = ((sdx*1000*yr7deaths) + yr6roi);  yr8roi = ((sdx*1000*yr8deaths) + yr7roi);  yr9roi = ((sdx*1000*yr9deaths) + yr8roi);  yr10roi = ((sdx*1000*yr10deaths) + yr9roi);  yr11roi = ((sdx*1000*yr11deaths) + yr10roi);  yr12roi = ((sdx*1000*yr12deaths) + yr11roi);  yr13roi = ((sdx*1000*yr13deaths) + yr12roi);  yr14roi = ((sdx*1000*yr14deaths) + yr13roi);  yr15roi = ((sdx*1000*yr15deaths) + yr14roi);  yr16roi = ((sdx*1000*yr16deaths) + yr15roi);  yr17roi = ((sdx*1000*yr17deaths) + yr16roi);  yr18roi = ((sdx*1000*yr18deaths) + yr17roi);  yr19roi = ((sdx*1000*yr19deaths) + yr18roi);  yr20roi = ((sdx*1000*yr20deaths) + yr19roi);  yr21roi = ((sdx*1000*yr21deaths) + yr20roi);  yr22roi = ((sdx*1000*yr22deaths) + yr21roi);  yr23roi = ((sdx*1000*yr23deaths) + yr22roi);  yr24roi = ((sdx*1000*yr24deaths) + yr23roi);  yr25roi = ((sdx*1000*yr25deaths) + yr24roi);  yr26roi = ((sdx*1000*yr26deaths) + yr25roi);  yr27roi = ((sdx*1000*yr27deaths) + yr26roi);  yr28roi = ((sdx*1000*yr28deaths) + yr27roi);  yr29roi = ((sdx*1000*yr29deaths) + yr28roi);  yr30roi = ((sdx*1000*yr30deaths) + yr29roi);  yr31roi = ((sdx*1000*yr31deaths) + yr30roi);  yr32roi = ((sdx*1000*yr32deaths) + yr31roi);  yr33roi = ((sdx*1000*yr33deaths) + yr32roi);  yr34roi = ((sdx*1000*yr34deaths) + yr33roi);  yr35roi = ((sdx*1000*yr35deaths) + yr34roi);  yr36roi = ((sdx*1000*yr36deaths) + yr35roi);  yr37roi = ((sdx*1000*yr37deaths) + yr36roi);  yr38roi = ((sdx*1000*yr38deaths) + yr37roi);  yr39roi = ((sdx*1000*yr39deaths) + yr38roi);  yr40roi = ((sdx*1000*yr40deaths) + yr39roi);  yr41roi = ((sdx*1000*yr41deaths) + yr40roi);  yr42roi = ((sdx*1000*yr42deaths) + yr41roi);  yr43roi = ((sdx*1000*yr43deaths) + yr42roi);  yr44roi = ((sdx*1000*yr44deaths) + yr43roi);  yr45roi = ((sdx*1000*yr45deaths) + yr44roi);  yr46roi = ((sdx*1000*yr46deaths) + yr45roi);  yr47roi = ((sdx*1000*yr47deaths) + yr46roi);  yr48roi = ((sdx*1000*yr48deaths) + yr47roi);  yr49roi = ((sdx*1000*yr49deaths) + yr48roi);  yr50roi = ((sdx*1000*yr50deaths) + yr49roi);  ), sdx])];)];

Wherein:

-   -   useroi=solve for death benefit that takes into consideration         reinvesting of death benefits to meet financial target     -   yrs2=years in program     -   sdx=the variable to solve for which equates to the death benefit     -   uaal=financial target (e.g. $50 billion)     -   YrXXROP=the accumulated value of the premiums that will be         provided to the client if they choose to use a return of premium         life insurance product     -   yrXdeaths=the number of deaths for year X as calculated by         mortality modeling     -   yrXroi=death benefits for year+expected rate of return for year         X     -   dXX=expected return on investment for year XX

Still referring to FIG. 1, in another step of the disclosed method 10 the financial target data set 104 is transmitted (from the server) to a plurality of life insurance vendors. The financial target data set may, for example, be transmitted to between 2 and 10 (or more) vendors. However, in the disclosed embodiment of the method a total of 6 vendors are used. As part of, or in addition to, the financial target data set 104, the vendor may be provided with requests for information in at least the following categories: (1) the vendor's relationship with the governmental entity; (2) the customer support provided by the vendor; (3) the vendor's growth rate; (4) the vendor's market share; (5) the vendor's management; (6) vendor's financial state; (7) the vendor's financial heath; (8) the vendor's rank in the market; and (9) the vendor's overall health. This information, or a combination thereof, may also be provided in whole or in part by the governmental entity. Moreover, as will be discussed infra, each vendor's response to the request for information will be weighed (on e.g., a scale of 0 to 1.75) and used in calculating the proportional rating for each vendor.

Referring now to FIGS. 1 and 3, in another step of the disclosed method 10 one or more, but preferably at least two life insurance vendors, and still more preferably all the vendors, return and/or transmit rate tables back to the server. Each of these rate tables—which may be combined into a larger array or table (see FIG. 3) may include each vendor's life insurance premium rate per member (e.g., $5.00 per $1,000 of benefit) for each member of each mortality data set 102. Thus, in the disclosed embodiment each vendor may provide a rate table include 412 separate rate—one for each mortality data set 102.

Referring now to FIG. 1, in another step of the disclosed method 10 may include generating a proportional rating for each insurance vendor. As mentioned supra, this proportional rating may be generated by factoring the weighted response of each vendor to each category of the request for information (on e.g., a scale of 0 to 1.75). Additionally, or alternatively, this proportional rating may be generated by factoring the weighed responses concerning the vendor and/or concerning the needs of the party responsible for the unfunded liability. In one non-limiting example, this proportional rating may be calculated as follows:

c1rating=((r1r*r1r1)+(r2r*r2r1)+(r3r*r3r1)+(r4r*r4r1)+(r5r*r5r1)+(r6r*r6r1)+(r7r*r7r1)+(r8r*r8r1)+(r9r*r9r1)+(r10r*r10r1))/10;

c2rating=((r1r*r1r2)+(r2r*r2r2)+(r3r*r3r2)+(r4r*r4r2)+(r5r*r5r2)+(r6r*r6r2)+(r7r*r7r2)+(r8r*r8r2)+(r9r*r9r2)+(r10r*r10r2))/10;

c3rating=((r1r*r1r3)+(r2r*r2r3)+(r3r*r3r3)+(r4r*r4r3)+(r5r*r5r3)+(r6r*r6r3)+(r7r*r7r3)+(r8r*r8r3)+(r9r*r9r3)+(r10r*r10r3))/10;

c4rating=((r1r*r1r4)+(r2r*r2r4)+(r3r*r3r4)+(r4r*r4r4)+(r5r*r5r4)+(r6r*r6r4)+(r7r*r7r4)+(r8r*r8r4)+(r9r*r9r4)+(r10r*r10r4))/10;

c5rating=((r1r*r1r5)+(r2r*r2r5)+(r3r*r3r5)+(r4r*r4r5)+(r5r*r5r5)+(r6r*r6r5)+(r7r*r7r5)+(r8r*r8r5)+(r9r*r9r5)+(r10r*r10r5))/10;

c6rating=((r1r*r1r6)+(r2r*r2r6)+(r3r*r3r6)+(r4r*r4r6)+(r5r*r5r6)+(r6r*r6r6)+(r7r*r7r6)+(r8r*r8r6)+(r9r*r9r6)+(r10r*r10r6))/10;

CalcRating[ptable_(—) ]:={c1rating*ptable[[1]],c2rating*ptable[[2]],c3rating*ptable[[3]],c4rating*ptable[[4]],c5rating*ptable[[5]],c6rating*ptable[[6]]};

In which:

r1r=master category rating 1 r2r=master category rating 2 r3r=master category rating 3 r4r=master category rating 4 r5r=master category rating 5 r6r=master category rating 6 r7r=master category rating 7 r8r=master category rating 8 r9r=master category rating 9 r10r=master category rating 10 r1r1=company 1 rating for master category 1 r2r1=company 1 rating for master category 2 r3r1=company 1 rating for master category 3 r4r1=company 1 rating for master category 4 r5r1=company 1 rating for master category 5 r6r1=company 1 rating for master category 6 r7r1=company 1 rating for master category 7 r8r1=company 1 rating for master category 8 r9r1=company 1 rating for master category 9 r10r1=company 1 rating for master category 10 r1r2=company 2 rating for master category 1 r2r2=company 2 rating for master category 2 r3r2=company 2 rating for master category 3 r4r2=company 2 rating for master category 4 r5r2=company 2 rating for master category 5 r6r2=company 2 rating for master category 6 r7r2=company 2 rating for master category 7 r8r2=company 2 rating for master category 8 r9r2=company 2 rating for master category 9 r10r2=company 2 rating for master category 10 r1r3=company 3 rating for master category 1 r2r3=company 3 rating for master category 2 r3r3=company 3 rating for master category 3 r4r3=company 3 rating for master category 4 r5r3=company 3 rating for master category 5 r6r3=company 3 rating for master category 6 r7r3=company 3 rating for master category 7 r8r3=company 3 rating for master category 8 r9r3=company 3 rating for master category 9 r10r3=company 3 rating for master category 10 r1r1=company 4 rating for master category 1 r2r4=company 4 rating for master category 2 r3r4=company 4 rating for master category 3 r4r4=company 4 rating for master category 4 r5r4=company 4 rating for master category 5 r6r4=company 4 rating for master category 6 r7r4=company 4 rating for master category 7 r8r4=company 4 rating for master category 8 r9r4=company 4 rating for master category 9 r10r4=company 4 rating for master category 10 r1r5=company 5 rating for master category 1 r2r5=company 5 rating for master category 2 r3r5=company 5 rating for master category 3 r4r5=company 5 rating for master category 4 r5r5=company 5 rating for master category 5 r6r5=company 5 rating for master category 6 r7r5=company 5 rating for master category 7 r8r5=company 5 rating for master category 8 r9r5=company 5 rating for master category 9 r10r5=company 5 rating for master category 10 r1r6=company 6 rating for master category 1 r2r6=company 6 rating for master category 2 r3r6=company 6 rating for master category 3 r4r6=company 6 rating for master category 4 r5r6=company 6 rating for master category 5 r6r6=company 6 rating for master category 6 r7r6=company 6 rating for master category 7 r8r6=company 6 rating for master category 8 r9r6=company 6 rating for master category 9 r10r6=company 6 rating for master category 10

Referring now to FIGS. 1 and 4, in a further step of the disclosed method 10, a final or normalized rate table (or array) 108 may be generated 22 that may include a per member life insurance premium rate for each mortality data set 102. This rate table 108 may be generated/output as a tangible report, as part of an on-screen display or both. This life insurance premium rate may be selected for each mortality data set 102 from the lowest vendor rate, as adjusted by the proportional rating for that vendor, for that mortality data set. Accordingly, where two vendor's have the same proportional rating, the rate table 108 will include for any given mortality data set 102 the rate of the vendor that is the lowest. However, where two vendor's have the same rate, the table 108 may include for any given mortality data set 102 the rate of the vendor having the most preferred proportional rating. In one non-limiting example, this rate table may be calculated as follows:

Step 1: Calculate premium and create table of table's for each group type (M/F, Smoking/Non)

LFFNRates = { }; i = 18; While[i < 121, AppendTo[LFFNRates, CalcPremTable[1, 0, 0, i, 1]]; i++]; LFFSRates = { }; i = 18; While[i < 121, AppendTo[LFFSRates, CalcPremTable[1, 0, 1, i, 1]]; i++]; LFMNRates = { }; i = 18; While[i < 121, AppendTo[LFMNRates, CalcPremTable[1, 1, 0, i, 1]]; i++];< 121, LFMSRates = { }; i = 18; While[i < 121, AppendTo[LFMSRates, CalcPremTable[1, 1, 1, i, 1]]; i++];

Step 2: Apply ratings to premium table of table's to create a proportionalized premium table of table's for each group type:

LFMNprempos = { }; i = 1; While[i < 104, AppendTo[LFMNprempos, Position[CalcRating[LFMNRates[[i]]], Min[Cases[Delete[CalcRating[LFMNRates[[i]]], evcomp], Except[0]]]]]; i++]; LFMSprempos = { }; i = 1; While[i < 104, AppendTo[LFMSprempos, Position[CalcRating[LFMSRates[[i]]], Min[Cases[Delete[CalcRating[LFMSRates[[i]]], evcomp], Except[0]]]]]; i++]; LFFNprempos = { }; i = 1; While[i < 104, AppendTo[LFFNprempos, Position[CalcRating[LFFNRates[[i]]], Min[Cases[Delete[CalcRating[LFFNRates[[i]]], evcomp], Except[0]]]]]; i++]; LFFSprempos = { }; i = 1; While[i < 104, AppendTo[LFFSprempos, Position[CalcRating[LFFSRates[[i]]], Min[Cases[Delete[CalcRating[LFFSRates[[i]]], evcomp], Except[0]]]]]; i++];

Step 3: Identify the lowest proportionalized premium table of table's for each group type:

LFMNlowprem = { }; i = 1; While[i < 104, AppendTo[LFMNlowprem, LFMNRates[[i, LFMNprempos[[i, 1, 1]]]]]; i++]; LFMSlowprem = { }; i = 1; While[i < 104, AppendTo[LFMSlowprem, LFMSRates[[i, LFMSprempos[[i, 1, 1]]]]]; i++]; LFFNlowprem = { }; i = 1; While[i < 104, AppendTo[LFFNlowprem, LFFNRates[[i, LFFNprempos[[i, 1, 1]]]]]; i++]; LFFSlowprem = { }; i = 1 ; While[i < 104, AppendTo[LFFSlowprem, LFFSRates[[i, LFFSprempos[[i, 1, 1]]]]]; i++];

Step 4: Create premium table of table's of non proportionalized premiums based upon analysis done in step 3 for each group type:

LFMNpremposlist = { }; i = 1; While[i < 104, AppendTo[LFMNpremposlist, LFMNprempos[[i., 1, 1]]]; i++]; LFMSpremposlist = { }; i = 1; While[i < 104, AppendTo[LFMSpremposlist, LFMSprempos[[i, 1, i]]]; i++]; LFFSpremposlist = { }; i = 1; While[i < 104, AppendTo[LFFSpremposlist, LFFSprempos[[i, 1, 1]]]; i++]; LFFNpremposlist = { }; i = 1; While[i < 104, AppendTo[LFFNpremposlist, 1LFFNprempos[[i, 1, ]]]; i++];

Example of Using Final Rate Table:

Step 1: Calculate premium and create table of table's for each group type (MIF, Smoking/Non)

LFFNRates={1.1,1.2,1.23,0.9,1,2}

Step 2: Apply ratings to premium table of table's to create a proportionalized premium table of table's for each group type

Company 1 rating=1 Company 2 ratings=0.5 Company 3 ratings=1.25 Company 4 ratings=1.3 Company 5 ratings=1 Company 6 ratings=0.75 Proportionalize table={1.1*1, 1.2*0.5, 1.23*1.25, 1.3*0.9, 1*1, 1.2*0.75} or {1.1, 0.6, 1.5375, 1.17, 1, 0.9} Lowest proportionalized premium is in position 2 (0.6) where non proportionalized lowest premium is in position 4 (0.9)

Step 3: Create table of lowest proportionalized premium positions—in this example a “2” would be captured for this group type/age in the premium table.

Step 4: Create premium table based upon position of premium in the table of premiums for group type—in this example the premium of 1.2 would be added to the premium table and used to calculate the total annual premium for the group type.

Still referring to FIGS. 1 and 4, a separate rate table 108 b may also be generated 22 that may include a per member bonus life insurance premium rate for each mortality data set 102—it being appreciated that all the steps of the method disclosed herein may also be used in determining a best bonus premium. As above, this bonus life insurance premium rate may be selected for each mortality data set 102 from the lowest vendor rate, as adjusted by the proportional rating for that vendor, for that mortality data set. In one non-limiting example, this rate table may be calculated as follows:

   CalcBNPremArray[type_, sex_, sns_, age_, num_] := If[ type == 1,  (If[sex == 1,  (If[ sns == 1,   ({((bnms01[[age − 17]]*num*sdb)*(1 +   bnpremadj1)), ((bnms02[[age − 17]]*num*sdb)*(1 +   bnpremadj2)), ((bnms03[[age − 17]]*num*sdb)*(1 +   bnpremadj3)), ((bnms04[[age − 17]]*num*sdb)*(1 +   bnpremadj4)), ((bnms05[[age − 17]]*num*sdb)*(1 +   bnpremadj5)), ((bnms06[[age − 17]]*num*sdb)*(1 + bnpremadj6))}),  ({((bnmn01[[age − 17]]*num*sdb)*(1 +   bnpremadj1)), ((bnmn02[[age − 17]]*num*sdb)*(1 +   bnpremadj2)), ((bnmn03[[age − 17]]*num*sdb)*(1 +   bnpremadj3)), ((bnmn04[[age − 17]]*num*sdb)*(1 +   bnpremadj4)), ((bnmn05[[age − 17]]*num*sdb)*(1 +   bnpremadj5)), ((bnmn06[[age − 17]]*num*sdb)*(1 +   bnpremadj6))})]),  (If[ sns == 1,  ({((bnfs01[[age − 17]]*num*sdb)*(1 +   bnpremadj1)), ((bnfs02[[age − 17]]*num*sdb)*(1 +   bnpremadj2)), ((bnfs03[[age − 17]]*num*sdb)*(1 +   bnpremadj3)), ((bnfs04[[age − 17]]*num*sdb)*(1 +   bnpremadj4)), ((bnfs05[[age − 17]]*num*sdb)*(1 +   bnpremadj5)), ((bnfs06[[age − 17]]*num*sdb)*(1 + bnpremadj6))}),  ({((bnfn01[[age − 17]]*num*sdb)*(1 +   bnpremadj1)), ((bnfn02[[age − 17]]*num*sdb)*(1 +   bnpremadj2)), ((bnfn03[[age − 17]]*num*sdb)*(1 +   bnpremadj3)), ((bnfn04[[age − 17]]*num*sdb)*(1 +   bnpremadj4)), ((bnfn05[[age − 17]]*num*sdb)*(1 +   bnpremadj5)), ((bnfn06[[age − 17]]*num*sdb)*(1 +   bnpremadj6))})])] ), (If[sex == 1,  (If[sns == 1,  ({((bnms01[[age − 17]]*num*bonus)*(1 +   bnpremadj1)), ((bnms02[[age − 17]]*num*bonus)*(1 +   bnpremadj2)), ((bnms03[[age − 17]]*num*bonus)*(1 +   bnpremadj3)), ((bnms04[[age − 17]]*num*bonus)*(1 +   bnpremadj4)), ((bnms05[[age − 17]]*num*bonus)*(1 +   bnpremadj5)), ((bnms06[[age − 17]]*num*bonus)*(1 +   bnpremadj6))}), ({((bnmn01[[age − 17]]*num*bonus)*(1 +   bnpremadj1)), ((bnmn02[[age − 17]]*num*bonus)*(1 +   bnpremadj2)), ((bnmn03[[age − 17]]*num*bonus)*(1 +   bnpremadj3)), ((bnmn04[[age − 17]]*num*bonus)*(1 +   bnpremadj4)), ((bnmn05[[age − 17]]*num*bonus)*(1 +   bnpremadj5)), ((bnmn06[[age − 17]]*num*bonus)*(1 +   bnpremadj6))})]),  (If[sns == 1,  ({((bnfs01[[age − 17]]*num*bonus)*(1 +   bnpremadj1)), ((bnfs02[[age − 17]]*num*bonus)*(1 +   bnpremadj2)), ((bnfs03[[age − 17]]*num*bonus)*(1 +   bnpremadj3)), ((bnfs04[[age − 17]]*num*bonus)*(1 +   bnpremadj4)), ((bnfs05[[age − 17]]*num*bonus)*(1 +   bnpremadj5)), ((bnfs06[[age − 17]]*num*bonus)*(1 +   bnpremadj6))}), ({((bnfn01[[age − 17]]*num*bonus)*(1 +   bnpremadj1)), ((bnfn02[[age − 17]]*num*bonus)*(1 +   bnpremadj2)), ((bnfn03[[age − 17]]*num*bonus)*(1 +   bnpremadj3)), ((bnfn04[[age − 17]]*num*bonus)*(1 +   bnpremadj4)), ((bnfn05[[age − 17]]*num*bonus)*(1 +   bnpremadj5)), ((bnfn06[[age − 17]]*num*bonus)*(1 +   bnpremadj6))})])] ) ];

type=regular or bonus

sex=male or female

sns=smoking or non smoking

age=age of population

num=number of people in population

sdb=death benefit

bonus=bonus coverage amount in thousands (e.g. 50=$50,000)

bnms01=bonus premium male smoking company 1

bnmn01=bonus premium male smoking company 1

bnfs01=bonus premium female smoking company 1

bnfn01=bonus premium female smoking company 1

bnms02=bonus premium male smoking company 2

bnmn02=bonus premium male smoking company 2

bnfs02=bonus premium female smoking company 2

bnfn02=bonus premium female smoking company 2

bnms03=bonus premium male smoking company 3

bnmn03=bonus premium male smoking company 3

bnfs03=bonus premium female smoking company 3

bnfn03=bonus premium female smoking company 3

bnms04=bonus premium male smoking company 4

bnmn04=bonus premium male smoking company 4

bnfs04=bonus premium female smoking company 4

bnfn04=bonus premium female smoking company 4

bnms05=bonus premium male smoking company 5

bnmn05=bonus premium male smoking company 5

bnfs05=bonus premium female smoking company 5

bnfn05=bonus premium female smoking company 5

bnms06=bonus premium male smoking company 6

bnmn06=bonus premium male smoking company 6

bnfs06=bonus premium female smoking company 6

bnfn06=bonus premium female smoking company 6

bnpremadj1=+/− adjustment to bonus premium dollar value for company 1

bnpremadj2=+/− adjustment to bonus premium dollar value for company 2

bnpremadj3=+/− adjustment to bonus premium dollar value for company 3

bnpremadj4=+/− adjustment to bonus premium dollar value for company 4

bnpremadj5=+/− adjustment to bonus premium dollar value for company 5

bnpremadj6=+/− adjustment to bonus premium dollar value for company 6

Referring now to FIGS. 1 and 5, once presented with a final rate table 112, a governmental entity or entity associated with the unfunded liability may then purchase the necessary level of insurance yielding a death benefit sufficient to meeting the requirements of the unfunded liability. Then, as a further step of the method 10, the result of the method may be further implemented and monitored on at least an annual basis by accounting for members of the population that have either (1) died prematurely; or (2) have retired. The method 10 (i.e., population models and benefit data) must, therefore, be adjusted to either account for this loss and/or my “adding back” into the data any new hires to the population that replaced the former members. In one non-limiting example, this adding back may be calculated as follows:

yrs=years in program (e.g. 30)

grouptype=MN, MS, FN, FS (male, female, smoking, non smoking)

nh=add back new hires to census population

Having thus described my invention, various other embodiments will become apparent to those of skill in the art that do not depart from the scope of the disclosure or the claims. 

1. A method comprising: receiving a population data set including demographic data for each member of a predetermined population; generating a plurality of mortality data sets, each mortality data set being defined by a group of members of the population data set having a common set of demographic data and each mortality data set including a mortality rate for that defined group of members; generating a financial target data set including the population data set and indicating, for each mortality data set, a per member average required life insurance benefit; transmitting the financial target data set to a plurality of life insurance vendors; receiving from each of at least two life insurance vendors a rate table including the vendor's per member life insurance premium rate for each mortality data set; generating a proportional rating for each insurance vendor; and generating a final rate table having a per member life insurance premium rate for each mortality data set, the life insurance premium rate selected for each mortality data set being the lowest vendor rate, as adjusted by the proportional rating for that vendor, for that mortality data set.
 2. The method of claim 1, wherein the mortality rate for each mortality data set is determined by selecting a mortality rate for each member of the data set from one of a plurality of mortality tables.
 3. The method of claim 2, wherein the plurality of mortality tables are selected from a group consisting of the 1980 CSO, the 1994 GAR, the PK-2000 and the 2001 CSO.
 4. The method of claim 1 wherein the mortality rate for each mortality data set is determined by selecting a mortality rate for each member of the data set from one of a plurality of mortality tables, with the mortality rate for each of at least two members of the data set being selected from two different mortality tables.
 5. The method of claim 4, wherein the plurality of mortality tables are selected from a group consisting of the 1980 CSO, the 1994 GAR, the PK-2000 and the 2001 CSO.
 6. The method of claim 1, wherein the demographic data set is selected for a group consisting of age data, gender data, smoking data, population group member health status data, employment compensation status data, employment responsibility level status data, type of employment, area of employment and physical location data.
 7. The method of claim 1, wherein the common set of demographic data comprises age data, gender data and smoking data.
 8. The method of claim 1, wherein the common set of demographic data consists of age data, gender data and smoking data.
 9. The method of claim 1, wherein the plurality of mortality data sets comprise: (a) male, smokers between the ages of 18 and 120; (b) male, nonsmokers between the ages of 18 and 120; (c) female, smokers between the ages of 18 and 120; (d) female, nonsmokers between the ages of 18 and 120; and with each ages for (a) through (d) each comprising a separate data set for a total of 412 mortality data sets.
 10. A system for financing unfunded liabilities comprising: a computer having a process in communication with a software component an into which is input information relating to a at least population data set including demographic data for each member of a predetermined population; said software component and said processor cooperating to output a plurality of mortality data sets, with each mortality data set being defined by a group of members of the population data set having a common set of demographic data and each mortality data set including a mortality rate for that defined group of members; said software component and said processor cooperating to output a financial target data set including the population data set and indicating, for each mortality data set, a per member average required life insurance benefit; said software component and said processor cooperating to transmit the financial target data set to a plurality of life insurance vendor servers; said software component and said processor cooperating to receive each of life insurance vendor server a rate table including the vendor's per member life insurance premium rate for each mortality data set; said software component and said processor cooperating to output a proportional rating for each insurance vendor; and said software component and said processor cooperating output a final rate table having a per member life insurance premium rate for each mortality data set, the life insurance premium rate selected for each mortality data set being the lowest vendor rate, as adjusted by the proportional rating for that vendor, for that mortality data set.
 11. A computer based system for financing unfunded liabilities comprising: providing a computer having a processor in communication with a software component and into which is input information relating to a population data set including demographic data for each member of a predetermined population, the software component and the processor cooperating to issue at least one command further including: generating a plurality of mortality data sets, each mortality data set being defined by a group of members of the population data set having a common set of demographic data and each mortality data set including a mortality rate for that defined group of members; generating a financial target data set including the population data set and indicating, for each mortality data set, a per member average required life insurance benefit; transmitting the financial target data set to a plurality of remote life insurance vendor servers; receiving from each life insurance vendor server a rate table including the vendor's per member life insurance premium rate for each mortality data set; generating a proportional rating for each insurance vendor; and generating a final rate table having a per member life insurance premium rate for each mortality data set, the life insurance premium rate selected for each mortality data set being the lowest vendor rate, as adjusted by the proportional rating for that vendor, for that mortality data set. 